﻿Namespace Extension

    Public Interface IPluginSettings

        ReadOnly Property Names() As IList(Of String)
        Default Property Item(ByVal name As String) As String

        Sub SetString(ByVal name As String, ByVal value As String)
        Function GetString(ByVal name As String) As String
        Function GetString(ByVal name As String, ByVal defaultValue As String) As String

        Sub SetStringWithSimpleEncryption(ByVal name As String, ByVal value As String)
        Function GetStringWithSimpleEncryption(ByVal name As String) As String
        Function GetStringWithSimpleEncryption(ByVal name As String, ByVal defaultValue As String) As String

        Sub SetInteger(ByVal name As String, ByVal value As Integer)
        Function GetInteger(ByVal name As String) As Integer?
        Function GetInteger(ByVal name As String, ByVal defaultValue As Integer) As Integer

        Sub SetBoolean(ByVal name As String, ByVal value As Boolean)
        Function GetBoolean(ByVal name As String) As Boolean?
        Function GetBoolean(ByVal name As String, ByVal defaultValue As Boolean) As Boolean

        Function Contains(ByVal name As String) As Boolean
        Function Remove(ByVal name As String) As Boolean
        Sub Clear()

    End Interface

End Namespace
